package com.soilflow.info.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.soilflow.common.annotation.DataScope;
import com.soilflow.common.domain.LandInfo;
import com.soilflow.common.domain.dto.LandInfoDto;
import com.soilflow.common.domain.dto.monthstatisticsDto;
import com.soilflow.common.domain.vo.LandInfoVo;
import com.soilflow.common.excle.LandInfoExcel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author dhp
 * @date 2023/4/17 - 16:33
 */
@Mapper
public interface LandInfoMapper extends BaseMapper<LandInfo> {
    /**
     * 查询【土地信息】
     *
     * @param id 【土地信息】主键
     * @return 【土地信息】
     */
    LandInfoVo selectLandInfoById(Long id);

    /**
     * 查询【土地信息】
     *
     * @param 【土地信息】列表
     * @return 【土地信息】
     */
    @DataScope(deptAlias = "li")
    List<LandInfoVo> selectLandInfoList(LandInfoDto dto);

    List<LandInfoVo> selectAllLandList(LandInfoDto dto);

    /**
     * 查询【竞拍大厅信息】
     *
     * @param dto 【竞拍大厅信息】列表
     * @return 【竞拍大厅信息】
     */
    List<LandInfoVo> selectAuctionLandInfoList(LandInfoDto dto);

    /**
     * 查询【竞拍大厅商品信息信息】
     *
     * @param auctionId 【竞拍大厅商品信息信息】详情表
     * @return 【竞拍大厅商品信息信息】
     */
    LandInfoVo selectLandInfoByAuctionId(Long auctionId);

    List<LandInfoExcel> selectExcel();

    List<monthstatisticsDto> monthstatistics();

    List<LandInfoVo> lists(LandInfoDto landInfo);

    List<LandInfoVo> massifList(LandInfoDto landInfo);

    List<LandInfoVo> buildingList(LandInfoDto landInfo);

    List<LandInfoVo> parkList(LandInfoDto landInfo);

    List<LandInfo> parkJingweidu();

    Integer totalByTown(@Param("deptId") Long id);

//    int totalLand();

    /**
     * 查询【项目交易信息】
     *
     * @param dto 【项目交易信息】列表
     * @return 【项目交易信息】
     */
    List<LandInfoVo> selectRecetionLandInfoList(LandInfoDto dto);
}